package sumline

import (
	"regexp"
)

// SumLineOptions is `sumline` program processor options
type SumLineOptions struct {
	Debug          bool
	SkipDuplicated bool
	ExcludeExts    map[string]struct{}
	IncludeLangs   map[string]struct{}
	ReNotMatch     *regexp.Regexp
	ReMatch        *regexp.Regexp
	ReNotMatchDir  *regexp.Regexp
	ReMatchDir     *regexp.Regexp

	// OnCode is triggered for each line of code
	OnCode func(line string)
	// OnBlank is triggered for each blank line
	OnBlank func(line string)
	// OnComment is triggered for each line of comments
	OnComment func(line string)
}

// NewSumLineOptions create new SumLineOptions with default values
func NewSumLineOptions() *SumLineOptions {
	return &SumLineOptions{
		Debug:          false,
		SkipDuplicated: false,
		ExcludeExts:    make(map[string]struct{}),
		IncludeLangs:   make(map[string]struct{}),
	}
}

// END: CODEREVIEW
